package com.aiserver.service;

import com.aiserver.dto.LoginRequest;
import com.aiserver.dto.LoginResponse;
import com.aiserver.entity.User;

/**
 * 认证服务接口
 */
public interface AuthService {

    /**
     * 用户名密码登录
     */
    LoginResponse login(LoginRequest request);

    /**
     * 手机验证码登录
     */
    LoginResponse smsLogin(String phone, String code);

    /**
     * 微信登录
     */
    LoginResponse wechatLogin(String code, String state);

    /**
     * 刷新token
     */
    LoginResponse refreshToken(String refreshToken);

    /**
     * 登出
     */
    void logout(String token);

    /**
     * 发送短信验证码
     */
    void sendSmsCode(String phone);

    /**
     * 生成图片验证码
     */
    String generateCaptcha(String key);

    /**
     * 验证图片验证码
     */
    boolean verifyCaptcha(String key, String code);

    /**
     * 用户注册
     */
    User register(String username, String password, String phone);

    /**
     * 检查用户是否被锁定
     */
    boolean isUserLocked(String username);

    /**
     * 处理登录失败
     */
    void handleLoginFailure(String username);

    /**
     * 处理登录成功
     */
    void handleLoginSuccess(String username);
}